Backend Engineering

49 개의 글

← 카테고리로 돌아가기
2026-02-09Java

Edge Computing Patterns for Backend Developers

백엔드 개발자가 알아야 할 엣지 컴퓨팅 패턴을 다룹니다. CDN 활용, Edge Functions, 지역별 라우팅부터 하이브리드 아키텍처까지 실무 가이드를 제공합니다.

2026-01-29Java

Cloud-Native Observability Stack Part 5 - Debugging Production Issues with Observability Data

Observability 데이터(트레이스, 메트릭, 로그)를 활용하여 프로덕션 이슈를 효과적으로 디버깅하는 방법을 다룹니다. 실제 장애 시나리오와 해결 과정을 상세히 설명합니다.

2026-01-28Java

Cloud-Native Observability Stack Part 4 - Metrics and Alerting with Prometheus/Grafana

Prometheus와 Grafana를 활용하여 Spring Boot 애플리케이션의 메트릭을 수집하고 시각화하는 방법을 다룹니다. 커스텀 메트릭, SLI/SLO 대시보드, 알림 설계까지 실무 가이드를 제공합니다.

2026-01-27Java

Cloud-Native Observability Stack Part 3 - Structured Logging with Correlation IDs

마이크로서비스 환경에서 구조화된 로깅과 Correlation ID를 구현하는 방법을 다룹니다. JSON 로깅, MDC 패턴, 로그 집계까지 실무 적용 가이드를 제공합니다.

2026-01-26Java

Cloud-Native Observability Stack Part 2 - Distributed Tracing Across Microservices

마이크로서비스 환경에서 분산 추적을 구현하는 방법을 다룹니다. Trace Context, Span 계층 구조, 샘플링 전략까지 실무 적용 가이드를 제공합니다.

2026-01-25Java

Cloud-Native Observability Stack Part 1 - OpenTelemetry Instrumentation in Spring Boot

OpenTelemetry를 활용하여 Spring Boot 애플리케이션에 관측 가능성을 추가하는 방법을 다룹니다. 자동 계측, 수동 span 생성, 컨텍스트 전파까지 실무 적용 가이드를 제공합니다.

2026-01-24Java

Spring Boot 4.0 주요 변경사항과 새로운 기능

Spring Boot 4.0의 주요 변경사항, 새로운 기능, 마이그레이션 가이드를 정리한다

2026-01-24Java

Production-Ready Event-Driven Architecture Part 5 - Event Schema Evolution and Versioning

이벤트 기반 시스템에서 스키마 진화를 안전하게 관리하는 방법을 다룹니다. Avro, Protobuf를 활용한 스키마 버전 관리, 하위 호환성 보장, Schema Registry 활용까지 실무 가이드를 제공합니다.

2026-01-23Java

Spring Boot JWT 인증과 인가 구현하기

Spring Boot 3.x와 Spring Security 6.x를 사용하여 JWT 기반 인증과 인가를 구현하는 방법을 정리한다

2026-01-23Java

Production-Ready Event-Driven Architecture Part 4 - Saga Pattern for Distributed Transactions

마이크로서비스 환경에서 분산 트랜잭션을 처리하는 Saga Pattern을 다룹니다. Choreography와 Orchestration 방식의 구현, 보상 트랜잭션, 상태 머신까지 실무 적용 가이드를 제공합니다.

2026-01-22neo4j

그래프 알고리즘으로 친구 추천하기

Neo4j 그래프 알고리즘을 사용하여 친구 추천 시스템을 구현하는 방법

2026-01-22Java

Production-Ready Event-Driven Architecture Part 3 - CQRS with Separate Read/Write Models

CQRS(Command Query Responsibility Segregation) 패턴을 통해 읽기와 쓰기 모델을 분리하는 방법을 다룹니다. 최종적 일관성(Eventual Consistency) 처리와 실무 적용 전략을 상세히 설명합니다.

2026-01-21neo4j

그래프 데이터베이스로 활동 피드 구현하기

Neo4j를 사용하여 소셜 네트워크의 홈 피드와 타임라인을 구현하는 방법

2026-01-21Java

Production-Ready Event-Driven Architecture Part 2 - Implementing the Outbox Pattern

분산 시스템에서 데이터 일관성을 보장하는 Transactional Outbox Pattern의 구현 방법을 다룹니다. Debezium CDC를 활용한 exactly-once 의미론 구현까지 실무 적용 가이드를 제공합니다.

2026-01-20neo4j

친구, 팔로워, 연결 관계 구현하기

Neo4j에서 팔로우, 친구 요청, 상호 친구 기능을 구현하는 방법

2026-01-20Java

Production-Ready Event-Driven Architecture Part 1 - Event Sourcing Fundamentals

이벤트 소싱의 핵심 개념과 Spring Boot에서의 구현 방법을 알아봅니다. Event Store 설계, Aggregate Root, Projection, Snapshotting까지 실무에서 바로 적용할 수 있는 패턴을 다룹니다.

2026-01-19neo4j

소셜 네트워크 그래프 스키마 설계

그래프 데이터베이스로 소셜 네트워크의 사용자, 게시물, 관계를 모델링하는 방법

2026-01-18neo4j

Neo4j와 Spring Boot 시작하기

Spring Boot에서 Neo4j 그래프 데이터베이스를 설정하고 간단한 쿼리를 실행하는 방법

2022-12-24Java

ActiveMQ와 JMS를 사용한 SpringBoot 메시지

SpringBoot를 사용해서 개발을 하다보면 Exception 처리를 해야하는 경우가 생긴다. 해당하는 경우에 어떻게 예외처리하면 좋은지, 어떤 방법들이 있는지 한번 정리해보고자 한다

2022-12-12Java

SpringBoot Exception 처리하기

SpringBoot를 사용해서 개발을 하다보면 Exception 처리를 해야하는 경우가 생긴다. 해당하는 경우에 어떻게 예외처리하면 좋은지, 어떤 방법들이 있는지 한번 정리해보고자 한다

2022-11-22Java

스프링부트 멀티모듈 구성하기(4) - Stream 어플리케이션

스트림 모듈을 세팅하면서 Kafka와 어떻게 SpringBoot가 커넥션을 맺고, Consumer와 Producer가 어떻게 세팅되는지 정리해보려고한다. Kafka는 로컬 카프카도 괜찮고, 서버에 띄워진 Kafka, 혹은 Docker, Confluent등등 Kafka를 지원하는 솔루션이면 모두 사용 할 수 있다. 본문은 Kafka가 모두 준비되어있다는 가정하에 작성하려고한다.

2022-11-17Java

스프링부트 멀티모듈 구성하기(3) - API 모듈 작성하기

module-core에서 Customer와 Order 엔티티를 선언했는데, 이에 맞게 module-api에서는 Customer와 Order 읽어오기 / 쓰기 API를 만들어 보자.

2022-11-12Java

스프링부트 멀티모듈 구성하기(2) - 코어모듈에 Entity 적용 해놓기

...그래서 코어모듈에 엔티티를 만들어놓고, 각각의 모듈에서 코어모듈을 의존성으로 추가하면, 코어모듈에 있는 엔티티를 사용할 수 있다....

2022-11-07Java

스프링부트 멀티모듈 구성하기(1) - 프로젝트 구조만들기

...멀티모듈을 적용시켜서 엔티티들을 공통적으로 사용하고, 그외의 고유한 기능들을 각각의 서버에서 사용하자는 생각이 들었다. ...

2022-08-15Java

비밀번호 유효성 검증기 - TDD 활용하기

테스트코드에서 요구조건을 먼저 실현하고, 실현한 요구조건에서 실제 코드에 반영되지 않은 부분들을 하나씩 만들어가며 작업 ...

2022-07-02Java

Kotlin과 Spring을 사용한 Server에 여러개의 DataSource를 사용하자

Kotlin과 Spring을 사용한 Server에 여러개의 DataSource를 사용하자. 여러개의 데이터베이스를 연결하는 ...

2022-06-22Java

SpringBoot 에서 Logging을 사용해보자

로그는 간단하게 말해서 연속된 데이터의 기록이라고 할 수 있다. Kotlin을 사용한 Spring에서 로그를 남겨보자

2022-06-17Java

SpringBoot 에서 JPA를 사용한 Repository 테스트

SpringBoot를 사용해서 h2데이터베이스와 관련된 테스트를 진행 해 보려고 한다

2022-06-15Java

SpringBoot Kotlin으로 작성하기

SpringBoot를 kotlin으로 작성하여 h2와 JPA를 사용해 주문모델을 구현 해 보자

2022-05-30Java

SpringBoot와 Spring Cloud Gateway 사용하기

API Gateway는 다수의 서버를 하나로 묶어, 외부 애플리케이션 혹은 클라이언트에 대한 하나의 진입점이라고 생각하면 된다. 외부 어플리케이션 및 외부 클라이언트들은 마이크로 서비스에 직접 엑세스 하는 것이 제한되어 있기 때문에 그 사이의 중개자 역할을 한다

2022-05-26Java

SpringBoot 사용하여 Request요청을 로깅하기

Request 요청 로깅을 할 경우, 모든 REST API 컨트롤러에 로그를 남기는것도 하나의 방법이다. 하지만 모든 API 컨트롤러에 로깅을 작성하게 된다면 비효율적으로 작업이 될 수 있다. Spring Interceptor 라는 것을 사용해서, 컨트롤러의 Handler로 도착하기 전에 가로채어 따로 작업을 해 주는 방법을 정리하려고 한다

2022-05-23Java

SpringBoot에서 스케쥴링 사용하기

특정 시점이나 특정 시간 간격, 혹은 정해진 시간에 실행해야 하는 작업이 있을 수 있다. 이런 작업들을 '스케쥴링 된 작업' 혹은 '배치작업' 이라고 하는데 Spring에서 지원하는 방법은 크게 두 가지가 있다. 이번에는 스프링의 스케쥴링 어노테이션을 사용한 스케쥴 작업을 생성 해 보려고 한다.

2022-05-19Java

SpringBoot에서 Kafka Event Message 보내고 받기

빅 데이터의 세계에서 안정적인 스트리밍 플랫폼은 필수이다. 현재 가장 주목받고있는 kafka 스트리핑 플랫폼과 SpringBoot를 활용해서 간단한 Event 메시지를 주고받는 작업을 해보자

2022-05-12Java

SpringBoot에서 Redis 캐시를 사용하기

Spring Boot에서 Redis Cache를 사용하여 데이터 접근 성능을 높이는 방법을 알아봅니다.

2022-05-10Java

SpringBoot에서 Redis를 데이터베이스로 사용하기

많은 경우에 Spring은 DB에 담긴 데이터를 가져오고 전달하는 역할을 하고있는데 이 때, Redis를 가지고 데이터에 빠르게 접근하는 방법을 정리 해 보려고 한다. Redis는 데이터베이스로도 사용되고, Message Broker로도 사용되지만 Cache Manager에 더 많이 사용된다. 한번 만들어보면서 정리 해 보도록 하겠다

2022-05-09Java

SpringBoot Configuration에서 값 가져오기 - @Value

application.properties를 사용 해도 되지만 application.yml도 지원 하기 때문에, 새로 만들어 Hierarchy를 표현해서 보기 편하도록 작성 하는 방법도 있다. 더불어서, 이 설정파일인 application.yml의 값들을 불러와서 사용 하는 @Value 어노테이션을 간단히 정리 해 보려고 한다.

2022-05-07Spring

SpringBoot-Redis 로 만든 디저트가게 예제

SpringBoot 와 Redis를 이용한 디저트가게 예제

2022-05-02Python

poetry 로 파이썬 패키지 관리하기

파이썬으로 개발하다보면 여러가지 가상환경 매니징 패키지를 마주하게 된다. 이번에는 패키지의 버전까지 관리 해 주는 새로운 친구인 poetry를 도입 해 보려고 한다.

2022-04-28Java

SpringBoot의 Validation을 사용 해 보자

Spring Validation이란? validation이란 프로그래밍에 있어서 가장 필요한 부분이다. Java/Kotlin 에서는 null값에 대해 접근하려고 할 때, null point exception이 발생한다. 이런 부분을 방지하기 위해 미리 검증하는 과정을

2022-04-27database

데이터베이스를 docker-compose로 구축하기(mysql, mongodb, redis)

Docker는 인프라적인 요소들을 코드로 세팅 할 수 있는 가장 좋은 도구라고 생각한다. Docker를 사용해서 컴퓨터 내에 설치 하기 귀찮은(?) 데이터베이스들을 세팅 해 보려고 한다.

2022-02-14Spring

SpringBoot 예외처리하기 - Exception Handling

SpringBoot Exception 처리하기 - ControllerAdvice, ExceptionHandler

2022-01-21Spring

Spring Boot DB 연동과 테스트

SpringBoot를 사용해 H2 DB 연결하고 테스트하기

2022-01-13Java

Kotlin을 사용한 Spring Boot 개발기 - Controller (@requestBody, Dto 생성하기)

마찬가지로 @RestController 어노테이션을 사용해서 만든 controller 내부에서 사용 하려고한다.

2022-01-06flask

Flask 스마트하게 구조 만들기!

Flask 프로젝트를 체계적으로 구성하는 방법. pipenv, Blueprint, 환경설정 분리 등을 활용해 확장 가능한 구조를 만들어본다.

2022-01-05Java

Kotlin을 사용한 Spring Boot 개발기 - Controller (@RequestParam, @PathVariable)

Kotlin을 사용해서 SpringBoot를 개발 해 보려고 한다.

2021-12-27elastic search

ELK logging with flask - ELK 스택을 이용해서 플라스크의 로그를 남기자

ELK(Elasticsearch, Logstash, Kibana) 스택을 Docker로 구성하고 Flask 애플리케이션의 로그를 수집하고 시각화하는 방법을 알아본다.

2021-06-26Flask

Flask 데코레이터 사용하기

데코레이터란 함수에 반복적인 기능과 역할을 할 수 있도록 만들어주는 기능이다. 함수 내부의 로직을 수정하지않고, 기능을 추가하거나 수정 하고싶을 때 사용한다.

2021-04-23Flask

Flask 구조를 잡아 확장성있게 관리하기

플라스크는 미니멀하게 프로젝트를 시작 할 수 있어서, 초기 진입 시에 세팅과 공부 할 것들이 비교적 적은 편이라고 생각했다. 플라스크로 현업에서, 그리고 사이드 프로젝트로 개발을 진행 하다 보니 미니멀하게 금방 작업 하는 것에는 도움이 되었지만, Django나 Spring처럼 구조화를 하기는 조금 어렵다는 생각이 들었다.

2021-02-14Flask

Docker로 작성한 Flask 서버, Debug모드 적용하기

Docker로 올린 서버는 Debug모드로 실행 한다면, Docker 내부에 들어가서 코드를 고쳐줘야 하는 번거로움이 있다. Docker 내부에서 수정한 파일은, Docker를 내리거나 지우면 없어지며 혹은 local의 git과 연동되지 않는 문제점이 있다.